<template>
	<div class="page-container">
		<div v-if="editDialogVisible1" class="page-container">
			<el-tabs v-model="editableTabsValue" type="card" @tab-click="handleClick">
				<el-tab-pane
						:key="item.name"
						v-for="(item, index) in editableTabs"
						:label="item.title"
						:name="item.name"
				></el-tab-pane>
			</el-tabs>

			<!--商品基本信息-->
			<AddOrUpdateProduct ref="AddOrUpdateProduct"></AddOrUpdateProduct>

		</div>
	</div>
</template>

<script>
import CyTable from '@/views/Core/ProductTable'
import KtButton from '@/views/Core/KtButton'
import {format} from '@/utils/datetime'
import TableColumnFilterDialog from '@/views/Core/TableColumnFilterDialog'
import AddOrUpdateProduct from './AddOrUpdateProduct'

export default {
	components: {
    AddOrUpdateProduct
	},

	data() {
		return {
			categoryId: '',
			productId: 0,
			editableTabs: [],
			size: 'small',
			operation: false, // true:新增, false:编辑
			editDialogVisible: false, // 新增编辑界面是否显示
			editLoading: false,
			editDialogVisibleDetail: false,
			multipleSelection: [],
			editDialogVisible1: true,
			editableTabsValue: '1',
			unitsName: '',
			status: 0
		}
	},

	methods: {
		//商品详情回显
		getDataList() {
			let this_ = this;
			if (this_.productId !== 0) {
				let params = {};
				params.productId = this_.productId;
				this.utils.request.queryProductInfo(params, function (data) {
					if (data.data != null) {
						this_.productId = data.data.id;
						this_.categoryId = data.data.categoryId;
						this_.unitsName = data.data.unitsName;
						this_.status = data.data.status;
						// 商品类型 1-普通商品; 2-系列子品; 3.sku商品
						if (data.data.typeOfProduct === 1) {
							this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '类目属性',
									name: '6'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '渠道',
									name: '10'
								},
								{
									title: '辅计量单位',
									name: '11'
								},
							]
						} else {
							this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '系列子品',
									name: '9'
								},
								{
									title: '渠道',
									name: '10'
								}
							]
						}
						// bom商品
						if (data.data.type === 3 || data.data.type === 4) {
							this_.editableTabs.push({title: '组合商品', name: '12'})
						}
						// 药品
						if (data.data.pillFlag === 1) {
							this_.editableTabs.push({title: '首营商品', name: '13'})
						}
						// 校标款
						// if (data.data.inventoryDisplay === 1) {
						// 	this_.editableTabs.push({title: ' 校标款配置基本款', name: '14'})
						// }
					}
				})
			} else {
				this_.editableTabs = [
								{
									title: '商品基本信息',
									name: '1'
								},
								{
									title: '商品图片',
									name: '2'
								},
								{
									title: '商品描述',
									name: '3'
								},
								{
									title: '商品售后',
									name: '4'
								},
								{
									title: '价格管理',
									name: '5'
								},
								{
									title: '类目属性',
									name: '6'
								},
								{
									title: '销售区域',
									name: '8'
								},
								{
									title: '渠道',
									name: '10'
								},
								{
									title: '辅计量单位',
									name: '11'
								},
							]
			}
		},

		// tab切换
		handleClick(tab) {
			let param = {
				productId: this.productId,
				flag: false,
				categoryId: this.categoryId
			};
			if (tab.name === '1') {
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param)
			} else if (tab.name === '2') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateMedia.init(param)
			} else if (tab.name === '3') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateDescribe.init(param)
			} else if (tab.name === '4') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateAfterSale.init(param)
			} else if (tab.name === '5') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdatePrice.init(param)
			} else if (tab.name === '6') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateProperty.init(param)
			} else if (tab.name === '7') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateChannel.init(param)
			} else if (tab.name === '8') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateSaleArea.init(param)
			} else if (tab.name === '9') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateProductParent.init(param)
			} else if (tab.name === '10') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				param.status = this.status;
				this.$refs.AddOrUpdateChannel.init(param)
			} else if (tab.name === '11') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				param.unitsName = this.unitsName;
				this.$refs.AddOrUpdateUnits.init(param)
			} else if (tab.name === '12') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateBom.init(param)
			} else if (tab.name === '13') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdateInventory.init(param);
				param.flag = true;
				this.$refs.AddOrUpdatePill.init(param)
			} else if (tab.name === '14') {
				this.$refs.AddOrUpdateProductInfo.init(param);
				this.$refs.AddOrUpdateProduct.init(param);
				this.$refs.AddOrUpdateMedia.init(false);
				this.$refs.AddOrUpdateDescribe.init(param);
				this.$refs.AddOrUpdateAfterSale.init(param);
				this.$refs.AddOrUpdatePrice.init(param);
				this.$refs.AddOrUpdateProperty.init(param);
				this.$refs.AddOrUpdateChannel.init(param);
				this.$refs.AddOrUpdateSaleArea.init(param);
				this.$refs.AddOrUpdateProductParent.init(param);
				this.$refs.AddOrUpdateUnits.init(param);
				this.$refs.AddOrUpdateBom.init(param);
				this.$refs.AddOrUpdatePill.init(param);
				param.flag = true;
				this.$refs.AddOrUpdateInventory.init(param)
			}
		},
	},

	mounted() {
		this.productId = this.$route.params.productId;
		this.getDataList()
	}

}
</script>

<style scoped lang="scss">

</style>
